import fs from "fs"
import { fileURLToPath } from "url"

export const getControllers = function(){
    let controllersUrl= new URL('../controllers',import.meta.url).href
    let filePath = fileURLToPath(controllersUrl)
    let files= fs.readdirSync(filePath)

    let  controllerFlies= files.filter(item=>item.endsWith("Controllers.js"))
    let controllerPath = controllerFlies.map(item=>`${controllersUrl}/${item}`)
    return controllerPath  
}

export const regControllers=function(router,controllersFiles){
    // 遍历 controllersFiles 数组中的每个控制器文件路径
        controllersFiles.forEach(async item => {
             // 动态导入每个控制器模块
            let arr= await import(item)
                 // 遍历控制器模块默认导出的路由数组
                arr.default.forEach(obj => {
                // 根据路由对象中的 method 属性注册对应的 HTTP 方法

                // 如果方法是 'get'，则使用 router.get 注册路由
                if(obj.method==='get'){
                    router.get(obj.url,obj.fn)
                }
                // 如果方法是 'post'，则使用 router.post 注册路由
                if(obj.method==='post'){
                    router.post(obj.url,obj.fn)
                }
                // 如果方法是 'put'，则使用 router.put 注册路由
                if(obj.method==='put'){
                    router.put(obj.url,obj.fn)
                }
                // 如果方法是 'del'（通常用于删除操作），则使用 router.delete 注册路由
                if(obj.method==='del'){
                    router.delete(obj.url,obj.fn)
                }

            });
              
        });
         
}